# Use:
# AS1(X)=1111001[X], AS2=11110100, AS3=(cond:4)1110, AS4={ne(cond,15)} for ARM
# AS1(X)=111[X]1111, AS2=11111001, AS3=11101110, AS4= for Thumb2

# A7.4
[AS1(U)](A:5)(:7)(B:4)(C:4)(:4)	{eq(band(A,0x16),0x16)} {lnot(band(C,1))} {U} {gt(B,12)}	UNDEFINED
[AS1(U)](A:5)(:7)(B:4)(C:4)(:4)	{eq(band(A,0x16),0x16)} {lnot(band(C,1))} {U} {eq(B,12)} {band(C,8)}	UNDEFINED

# A7.4.1
[AS1(U)]0(:1)(C:2)(:8)(A:4)(:3)(B)(:4)	{eq(A,11)} {B} {U}	UNDEFINED
[AS1(U)]0(:1)(C:2)(:8)(A:4)(:3)(B)(:4)	{eq(A,12)} {lor(lnot(B),U)}	UNDEFINED
[AS1(U)]0(:1)(C:2)(:8)(A:4)(:3)(B)(:4)	{eq(A,13)} {B} {U} {ge(C,2)}	UNDEFINED
[AS1(U)]0(:1)(C:2)(:8)(A:4)(:3)(B)(:4)	{eq(A,14)} {lnot(B)} {lnot(U)} {ge(C,2)}	UNDEFINED
[AS1(U)]0(:1)(C:2)(:8)(A:4)(:3)(B)(:4)	{ge(A,14)} {B} {eq(U,band(A,1))}	UNDEFINED

# A7.4.2
[AS1(U)]1(:1)(B:2)(:8)(A:4)(:1)0(:1)0(:4)	{ne(B,3)} {U} {eq(band(A,9),9)}	UNDEFINED
[AS1(U)]1(:1)(B:2)(:8)(A:4)(:1)0(:1)0(:4)	{ne(B,3)} {lnot(U)} {eq(A,15)}	UNDEFINED

# A7.4.3
[AS1(U)]1(:1)(B:2)(:8)(A:4)(:1)1(:1)0(:4)	{ne(B,3)} {U} {le(A,11)} {eq(band(A,3),3)}	UNDEFINED
[AS1(U)]1(:1)(B:2)(:8)(A:4)(:1)1(:1)0(:4)	{ne(B,3)} {ge(A,14)}	UNDEFINED

# A7.4.4
[AS1(U)]1(:1)(imm3:3)(:7)(A:4)LB(:1)1(:4)	{lor(L,imm3)} {lnot(U)} {eq(A,4)}	UNDEFINED
[AS1(U)]1(:1)(imm3:3)(:7)(A:4)LB(:1)1(:4)	{imm3} {eq(A,10)} {B} {lnot(L)}	UNDEFINED
[AS1(U)]1(:1)(imm3:3)(:7)(A:4)LB(:1)1(:4)	{L} {ge(A,8)} {le(A,10)}	UNDEFINED
[AS1(U)]1(:1)(imm3:3)(:7)(A:4)LB(:1)1(:4)	{L} {ge(A,14)}	UNDEFINED
[AS1(U)]1(:1)(imm3:3)(:7)(A:4)LB(:1)1(:4)	{lor(L,imm3)} {ge(A,11)} {le(A,13)}	UNDEFINED

# A7.4.5
#[AS1(1)]1(:1)11(:2)(A:2)(:4)0(B:5)(:1)0(:4)	{lnot(A)} {eq(band(B,0x1e),6)}	UNDEFINED # - handled by VREV?
[AS1(1)]1(:1)11(:2)(A:2)(:4)0(B:5)(:1)0(:4)	{lnot(A)} {eq(band(B,0x1c),12)}	UNDEFINED
[AS1(1)]1(:1)11(:2)(A:2)(:4)0(B:5)(:1)0(:4)	{eq(A,1)} {eq(band(B,0xe),10)}	UNDEFINED
[AS1(1)]1(:1)11(:2)(A:2)(:4)0(B:5)(:1)0(:4)	{eq(A,2)} {eq(B,13)}	UNDEFINED
[AS1(1)]1(:1)11(:2)(A:2)(:4)0(B:5)(:1)0(:4)	{eq(A,2)} {eq(band(B,0x1e),0xe)}	UNDEFINED
[AS1(1)]1(:1)11(:2)(A:2)(:4)0(B:5)(:1)0(:4)	{eq(A,2)} {ge(B,16)} {ne(band(B,0x1b),0x18)}	UNDEFINED
[AS1(1)]1(:1)11(:2)(A:2)(:4)0(B:5)(:1)0(:4)	{eq(A,3)} {lt(B,16)}	UNDEFINED

# A7.4.6
[AS1(a)]1(:1)000(bcd:3)(:4)(cmode:4)0(:1)(op)1(efgh:4)	{op} {eq(cmode,15)}	UNDEFINED

# A7.7
[AS2]A(:1)L0(:8)(B:4)(:8)	{lnot(A)} {ge(B,11)}	UNDEFINED
#[AS2]A(:1)L0(:8)(B:4)(:8)	{lnot(L)} {A} {ge(B,12)}	UNDEFINED # - covered by VST*?

# A8.8.277 VABA, VABAL
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0111NQM1(Vm:4)	{ne(size,3)}	VABA_VABAL_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0111NQM1(Vm:4)	{eq(size,3)}	UNDEFINED
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0111NQM1(Vm:4)	{ne(size,3)} {band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VABA_VABAL_A1
# A2 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)0101N0M0(Vm:4)	{ne(size,3)}	VABA_VABAL_A2
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)0101N0M0(Vm:4)	{ne(size,3)} {band(Vd,1)}	UNDEFINED in VABA_VABAL_A2

# A8.8.278 VABD, VABDL (integer)
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0111NQM0(Vm:4)	{ne(size,3)}	VABD_VABDL_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0111NQM0(Vm:4)	{eq(size,3)}	UNDEFINED
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0111NQM0(Vm:4)	{ne(size,3)} {band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VABD_VABDL_A1
# A2 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)0111N0M0(Vm:4)	{ne(size,3)}	VABD_VABDL_A2
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)0111N0M0(Vm:4)	{ne(size,3)} {band(Vd,1)}	UNDEFINED in VABD_VABDL_A2

# A8.8.279 VABD (floating-point)
# A1 ASIMD
[AS1(1)]0D1(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	{lnot(sz)}	VABD_fp_A1
[AS1(1)]0D1(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	{sz}	UNDEFINED
[AS1(1)]0D1(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	{lnot(sz)} {band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VABD_fp_A1

# A8.8.280 VABS
# A1 ASIMD
[AS1(1)]1D11(size:2)01(Vd:4)0F110QM0(Vm:4)	{ne(size,3)} {lnot(land(F,ne(size,2)))} {lnot(band(Q,bor(Vd,Vm)))}	VABS_A1
[AS1(1)]1D11(size:2)01(Vd:4)0F110QM0(Vm:4)	{lor(lor(eq(size,3),land(F,ne(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED

# A8.8.281 VACGE, VACGT, VACLE, VACLT
# A1 ASIMD
[AS1(1)]0D(op)(sz)(Vn:4)(Vd:4)1110NQM1(Vm:4)	{lnot(sz)} {lnot(band(Q,bor(bor(Vd,Vn),Vm)))}	VACxx_A1
[AS1(1)]0D(op)(sz)(Vn:4)(Vd:4)1110NQM1(Vm:4)	{lor(sz,band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED

# A8.8.282 VADD (integer)
# A1 ASIMD
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1000NQM0(Vm:4)	VADD_int_A1
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1000NQM0(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VADD_int_A1

# A8.8.283 VADD (floating-point)
# A1 ASIMD
[AS1(0)]0D0(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	{lnot(sz)} {lnot(band(Q,bor(bor(Vd,Vn),Vm)))}	VADD_fp_A1
[AS1(0)]0D0(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	{lor(sz,band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED

# A8.8.284 VADDHN
# A1 ASIMD
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)0100N0M0(Vm:4)	{ne(size,3)}	VADDHN_A1
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)0100N0M0(Vm:4)	{ne(size,3)} {band(bor(Vn,Vm),1)}	UNDEFINED in VADDHN_A1

# A8.8.285 VADDL, VADDW
# A1 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)000(op)N0M0(Vm:4)	{ne(size,3)}	VADDL_VADDW_A1
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)000(op)N0M0(Vm:4)	{ne(size,3)} {band(bor(Vd,band(op,Vn)),1)}	UNDEFINED in VADDL_VADDW_A1

# A8.8.287 VAND (register)
# A1 ASIMD
[AS1(0)]0D00(Vn:4)(Vd:4)0001NQM1(Vm:4)	VAND_reg_A1
[AS1(0)]0D00(Vn:4)(Vd:4)0001NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VAND_reg_A1

# A8.8.288 VBIC (immediate)
# A1 ASIMD
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q11(imm4:4)	{band(cmode,1)} {lt(cmode,12)} {lnot(band(Q,Vd))}	VBIC_imm_A1
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q11(imm4:4)	{band(cmode,1)} {lt(cmode,12)} {band(Q,Vd)}	UNDEFINED

# A8.8.289 VBIC (register)
# A1 ASIMD
[AS1(0)]0D01(Vn:4)(Vd:4)0001NQM1(Vm:4)	VBIC_reg_A1
[AS1(0)]0D01(Vn:4)(Vd:4)0001NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VBIC_reg_A1

# A8.8.290 VBIF, VBIT, VBSL
# A1 ASIMD
[AS1(1)]0D(op:2)(Vn:4)(Vd:4)0001NQM1(Vm:4)	{op}	VBIF_VBIT_VBSL_A1
[AS1(1)]0D(op:2)(Vn:4)(Vd:4)0001NQM1(Vm:4)	{op} {band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VBIF_VBIT_VBSL_A1

# A8.8.291 VCEQ (register)
# A1 ASIMD
[AS1(1)]0D(size:2)(Vn:4)(Vd:4)1000NQM1(Vm:4)	VCEQ_reg_A1
[AS1(1)]0D(size:2)(Vn:4)(Vd:4)1000NQM1(Vm:4)	{lor(eq(size,3),band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VCEQ_reg_A1
# A2 ASIMD
[AS1(0)]0D0(sz)(Vn:4)(Vd:4)1110NQM0(Vm:4)	VCEQ_reg_A2
[AS1(0)]0D0(sz)(Vn:4)(Vd:4)1110NQM0(Vm:4)	{lor(sz,band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VCEQ_reg_A2

# A8.8.292 VCEQ (immediate #0)
# A1 ASIMD
[AS1(1)]1D11(size:2)01(Vd:4)0F010QM0(Vm:4)	VCEQ_imm_0_A1
[AS1(1)]1D11(size:2)01(Vd:4)0F010QM0(Vm:4)	{lor(lor(eq(size,3),land(F,ne(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCEQ_imm_0_A1

# A8.8.293 VCGE (register)
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0011NQM1(Vm:4)	VCGE_reg_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0011NQM1(Vm:4)	{lor(eq(size,3),band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VCGE_reg_A1
# A2 ASIMD
[AS1(1)]0D0(sz)(Vn:4)(Vd:4)1110NQM0(Vm:4)	VCGE_reg_A2
[AS1(1)]0D0(sz)(Vn:4)(Vd:4)1110NQM0(Vm:4)	{lor(sz,band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VCGE_reg_A2

# A8.8.294 VCGE (immediate #0)
# A1 ASIMD
[AS1(1)]1D11(size:2)01(Vd:4)0F001QM0(Vm:4)	VCGE_imm_0_A1
[AS1(1)]1D11(size:2)01(Vd:4)0F001QM0(Vm:4)	{lor(lor(eq(size,3),land(F,ne(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCGE_imm_0_A1

# A8.8.295 VCGT (register)
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0011NQM0(Vm:4)	VCGT_reg_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0011NQM0(Vm:4)	{lor(eq(size,3),band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VCGT_reg_A1
# A2 ASIMD
[AS1(1)]0D1(sz)(Vn:4)(Vd:4)1110NQM0(Vm:4)	VCGT_reg_A2
[AS1(1)]0D1(sz)(Vn:4)(Vd:4)1110NQM0(Vm:4)	{lor(sz,band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VCGT_reg_A2

# A8.8.296 VCGT (immediate #0)
# A1 ASIMD
[AS1(1)]1D11(size:2)01(Vd:4)0F000QM0(Vm:4)	VCGT_imm_0_A1
[AS1(1)]1D11(size:2)01(Vd:4)0F000QM0(Vm:4)	{lor(lor(eq(size,3),land(F,ne(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCGT_imm_0_A1

# A8.8.298 VCLE (immediate #0)
# A1 ASIMD
[AS1(1)]1D11(size:2)01(Vd:4)0F011QM0(Vm:4)	VCLE_imm_0_A1
[AS1(1)]1D11(size:2)01(Vd:4)0F011QM0(Vm:4)	{lor(lor(eq(size,3),land(F,ne(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCLE_imm_0_A1

# A8.8.299 VCLS
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)01000QM0(Vm:4)	VCLS_A1
[AS1(1)]1D11(size:2)00(Vd:4)01000QM0(Vm:4)	{lor(eq(size,3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCLS_A1

# A8.8.301 VCLT (immediate #0)
# A1 ASIMD
[AS1(1)]1D11(size:2)01(Vd:4)0F100QM0(Vm:4)	VCLT_imm_0_A1
[AS1(1)]1D11(size:2)01(Vd:4)0F100QM0(Vm:4)	{lor(lor(eq(size,3),land(F,ne(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCLT_imm_0_A1

# A8.8.302 VCLZ
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)01001QM0(Vm:4)	VCLZ_A1
[AS1(1)]1D11(size:2)00(Vd:4)01001QM0(Vm:4)	{lor(eq(size,3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCLZ_A1

# A8.8.304 VCNT
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)01010QM0(Vm:4)	VCNT_A1
[AS1(1)]1D11(size:2)00(Vd:4)01010QM0(Vm:4)	{lor(size,band(Q,bor(Vd,Vm)))}	UNDEFINED in VCNT_A1

# A8.8.305 VCVT (between floating-point and integer, Advanced SIMD)
# A1 ASIMD
[AS1(1)]1D11(size:2)11(Vd:4)011(op:2)QM0(Vm:4)	VCVT_fp_int_ASIMD_A1
[AS1(1)]1D11(size:2)11(Vd:4)011(op:2)QM0(Vm:4)	{lor(ne(size,2),band(Q,bor(Vd,Vm)))}	UNDEFINED in VCVT_fp_int_ASIMD_A1

# A8.8.307 VCVT (between floating-point and fixed, Advanced SIMD)
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)111(op)0QM1(Vm:4)	{band(imm6,32)}	VCVT_fp_fx_ASIMD_A1
[AS1(U)]1D(imm6:6)(Vd:4)111(op)0QM1(Vm:4)	{gt(beor(imm6,32),39)}	UNDEFINED
[AS1(U)]1D(imm6:6)(Vd:4)111(op)0QM1(Vm:4)	{band(imm6,32)} {band(Q,bor(Vd,Vm))}	UNDEFINED in VCVT_fp_fx_ASIMD_A1

# A8.8.310 VCVT (between half-precision and single-precision, Advanced SIMD)
# A1 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)011(op)00M0(Vm:4)	VCVT_hp_sp_ASIMD_A1
[AS1(1)]1D11(size:2)10(Vd:4)011(op)00M0(Vm:4)	{lor(lor(ne(size,1),band(op,Vd)),band(beor(op,1),Vm))}	UNDEFINED in VCVT_hp_sp_ASIMD_A1

# A8.8.313 VDUP (scalar)
# A1 ASIMD
[AS1(1)]1D11(imm4:4)(Vd:4)11000QM0(Vm:4)	{band(imm4,7)} {lnot(band(Q,Vd))}	VDUP_scalar_A1
[AS1(1)]1D11(imm4:4)(Vd:4)11000QM0(Vm:4)	{lor(lnot(band(imm4,7)),band(Q,Vd))}	UNDEFINED

# A8.8.314 VDUP (ARM core register)
# A1 ASIMD
[AS3]1bQ0(Vd:4)(Rt:4)1011D0e1(0000)	[AS4] {lnot(band(Q,Vd))} {lnot(band(b,e))}	VDUP_arm_A1
[AS3]1bQ0(Vd:4)(Rt:4)1011D0e1(0000)	[AS4] {lor(band(Q,Vd),band(b,e))}	UNDEFINED_MCR_MCR2_A1

# A8.8.315 VEOR
# A1 ASIMD
[AS1(1)]0D00(Vn:4)(Vd:4)0001NQM1(Vm:4)	VEOR_A1
[AS1(1)]0D00(Vn:4)(Vd:4)0001NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VEOR_A1

# A8.8.316 VEXT
# A1 ASIMD
[AS1(0)]1D11(Vn:4)(Vd:4)(imm4:4)NQM0(Vm:4)	VEXT_A1
[AS1(0)]1D11(Vn:4)(Vd:4)(imm4:4)NQM0(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),land(lnot(Q),band(imm4,8)))}	UNDEFINED in VEXT_A1

# A8.8.317 VFMA, VFMS
# A1 ASIMDv2
[AS1(0)]0D(op)(sz)(Vn:4)(Vd:4)1100NQM1(Vm:4)	{lnot(sz)}	VFMA_VFMS_A1
[AS1(0)]0D(op)(sz)(Vn:4)(Vd:4)1100NQM1(Vm:4)	{sz}	UNDEFINED

# A8.8.319 VHADD, VHSUB
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)00(op)0NQM0(Vm:4)	VHADD_VHSUB_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)00(op)0NQM0(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),eq(size,3))}	UNDEFINED in VHADD_VHSUB_A1

# A8.8.320 VLD1 (multiple single elements)
# A1 ASIMD
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(band(type,14),6)}	VLD1_mult_A1a
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(band(type,14),6)} {band(align,2)}	UNDEFINED in VLD1_mult_A1a
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(type,10)}	VLD1_mult_A1b
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(type,10)} {eq(align,3)}	UNDEFINED in VLD1_mult_A1b
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(type,2)}	VLD1_mult_A1c

# A8.8.321 VLD1 (single element to one lane)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)(size:2)00(index_align:4)(Rm:4)	{ne(size,3)}	VLD1_onelane_A1
[AS2]1D10(Rn:4)(Vd:4)(size:2)00(index_align:4)(Rm:4)	{lnot(size)} {band(index_align,1)}	UNDEFINED in VLD1_onelane_A1
[AS2]1D10(Rn:4)(Vd:4)(size:2)00(index_align:4)(Rm:4)	{eq(size,1)} {band(index_align,2)}	UNDEFINED in VLD1_onelane_A1
[AS2]1D10(Rn:4)(Vd:4)(size:2)00(index_align:4)(Rm:4)	{eq(size,2)} {lor(band(index_align,4),band(beor(index_align,lsr(index_align,1)),1))}	UNDEFINED in VLD1_onelane_A1

# A8.8.322 VLD1 (single element to all lanes)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)1100(size:2)Ta(Rm:4)	VLD1_alllanes_A1
[AS2]1D10(Rn:4)(Vd:4)1100(size:2)Ta(Rm:4)	{lor(eq(size,3),land(lnot(size),a))}	UNDEFINED in VLD1_alllanes_A1

# A8.8.323 VLD2 (multiple 2-element structures)
# A1 ASIMD
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lor(eq(band(type,14),8),eq(type,3))}	VLD2_mult_A1
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lor(eq(band(type,14),8),eq(type,3))} {lor(eq(size,3),land(eq(band(type,14),8),eq(align,3)))}	UNDEFINED in VLD2_mult_A1

# A8.8.324 VLD2 (single 2-element structure to one lane)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)(size:2)01(index_align:4)(Rm:4)	{ne(size,3)}	VLD2_onelane_A1
[AS2]1D10(Rn:4)(Vd:4)(size:2)01(index_align:4)(Rm:4)	{ne(size,3)} {eq(size,2)} {band(index_align,2)}	UNDEFINED in VLD2_onelane_A1

# A8.8.325 VLD2 (single 2-element structure to all lanes)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)1101(size:2)Ta(Rm:4)	VLD2_alllanes_A1
[AS2]1D10(Rn:4)(Vd:4)1101(size:2)Ta(Rm:4)	{eq(size,3)}	UNDEFINED in VLD2_alllanes_A1

# A8.8.326 VLD3 (multiple 3-element structures)
# A1 ASIMD
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(band(type,14),4)}	VLD3_mult_A1
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(band(type,14),4)} {lor(eq(size,3),band(align,2))}	UNDEFINED in VLD3_mult_A1

# A8.8.327 VLD3 (single 3-element structure to one lane)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)(size:2)10(index_align:4)(Rm:4)	{ne(size,3)}	VLD3_onelane_A1
[AS2]1D10(Rn:4)(Vd:4)(size:2)10(index_align:4)(Rm:4)	{lnot(band(size,2))} {band(index_align,1)}	UNDEFINED in VLD3_onelane_A1
[AS2]1D10(Rn:4)(Vd:4)(size:2)10(index_align:4)(Rm:4)	{eq(size,2)} {band(index_align,3)}	UNDEFINED in VLD3_onelane_A1

# A8.8.328 VLD3 (single 3-element structure to all lanes)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)1110(size:2)Ta(Rm:4)	VLD3_alllanes_A1
[AS2]1D10(Rn:4)(Vd:4)1110(size:2)Ta(Rm:4)	{lor(eq(size,3),a)}	UNDEFINED in VLD3_alllanes_A1

# A8.8.329 VLD4 (multiple 4-element structures)
# A1 ASIMD
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lt(type,2)}	VLD4_mult_A1
[AS2]0D10(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lt(type,2)} {eq(size,3)}	UNDEFINED in VLD4_mult_A1

# A8.8.330 VLD4 (single 4-element structure to one lane)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)(size:2)11(index_align:4)(Rm:4)	{ne(size,3)}	VLD4_onelane_A1
[AS2]1D10(Rn:4)(Vd:4)(size:2)11(index_align:4)(Rm:4)	{eq(size,2)} {eq(band(index_align,3),3)}	UNDEFINED in VLD4_onelane_A1

# A8.8.331 VLD4 (single 4-element structure to all lanes)
# A1 ASIMD
[AS2]1D10(Rn:4)(Vd:4)1111(size:2)Ta(Rm:4)	VLD4_alllanes_A1
[AS2]1D10(Rn:4)(Vd:4)1111(size:2)Ta(Rm:4)	{eq(size,3)} {lnot(a)}	UNDEFINED in VLD4_alllanes_A1

# A8.8.334 VMAX, VMIN (integer)
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0110NQM(op)(Vm:4)	VMAX_VMIN_int_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0110NQM(op)(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),eq(size,3))}	UNDEFINED in VMAX_VMIN_int_A1

# A8.8.335 VMAX, VMIN (floating-point)
# A1 ASIMD
[AS1(0)]0D(op)(sz)(Vn:4)(Vd:4)1111NQM0(Vm:4)	VMAX_VMIN_fp_A1
[AS1(0)]0D(op)(sz)(Vn:4)(Vd:4)1111NQM0(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),sz)}	UNDEFINED in VMAX_VMIN_fp_A1

# A8.8.336 VMLA, VMLAL, VMLS, VMLSL (integer)
# A1 ASIMD
[AS1((op\))]0D(size:2)(Vn:4)(Vd:4)1001NQM0(Vm:4)	VMLxx_int_A1
[AS1((op\))]0D(size:2)(Vn:4)(Vd:4)1001NQM0(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),eq(size,3))}	UNDEFINED in VMLxx_int_A1
# A2 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)10(op)0N0M0(Vm:4)	{ne(size,3)}	VMLxx_int_A2
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)10(op)0N0M0(Vm:4)	{ne(size,3)} {band(Vd,1)}	UNDEFINED in VMLxx_int_A2

# A8.8.337 VMLA, VMLS (floating-point)
# A1 ASIMD
[AS1(0)]0D(op)(sz)(Vn:4)(Vd:4)1101NQM1(Vm:4)	VMLA_VMLS_fp_A1
[AS1(0)]0D(op)(sz)(Vn:4)(Vd:4)1101NQM1(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),sz)}	UNDEFINED in VMLA_VMLS_fp_A1

# A8.8.338 VMLA, VMLAL, VMLS, VMLSL (by scalar)
# A1 ASIMD
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)0(op)0FN1M0(Vm:4)	{ne(size,3)}	VMLxx_scalar_A1
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)0(op)0FN1M0(Vm:4)	{ne(size,3)} {lor(lor(lnot(size),land(F,eq(size,1))),band(Q,bor(Vd,Vn)))}	UNDEFINED in VMLxx_scalar_A1
# A2 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)0(op)10N1M0(Vm:4)	{ne(size,3)}	VMLxx_scalar_A2
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)0(op)10N1M0(Vm:4)	{ne(size,3)} {lor(lnot(size),band(Vd,1))}	UNDEFINED in VMLxx_scalar_A2

# A8.8.339 VMOV (immediate)
# A1 ASIMD
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q(op)1(imm4:4)	{lnot(land(land(lnot(op),band(cmode,1)),ne(band(cmode,12),12)))} {lnot(land(op,ne(cmode,14)))}	VMOV_imm_A1
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q(op)1(imm4:4)	{lnot(land(land(lnot(op),band(cmode,1)),ne(band(cmode,12),12)))} {lnot(land(op,ne(cmode,14)))} {band(Q,Vd)}	UNDEFINED in VMOV_imm_A1

# A8.8.340 VMOV (register)
# A1 ASIMD
[AS1(0)]0D10(Vm:4)(Vd:4)0001MQ(M2)1(Vm2:4)	{eq(M,M2)} {eq(Vm,Vm2)}	VMOV_reg_A1
[AS1(0)]0D10(Vm:4)(Vd:4)0001MQ(M2)1(Vm2:4)	{eq(M,M2)} {eq(Vm,Vm2)} {band(Q,bor(Vd,Vm))}	UNDEFINED in VMOV_reg_A1

# A8.8.346 VMOVL
# A1 ASIMD
[AS1(U)]1D(imm3:3)000(Vd:4)101000M1(Vm:4)	{eq(bitcount(imm3),1)}	VMOVL_A1
[AS1(U)]1D(imm3:3)000(Vd:4)101000M1(Vm:4)	{eq(bitcount(imm3),1)} {band(Vd,1)}	UNDEFINED in VMOVL_A1

# A8.8.347 VMOVN
# A1 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)001000M0(Vm:4)	VMOVN_A1
[AS1(1)]1D11(size:2)10(Vd:4)001000M0(Vm:4)	{lor(eq(size,3),band(Vm,1))}	UNDEFINED in VMOVN_A1

# A8.8.350 VMUL, VMULL (integer and polynomial)
# A1 ASIMD
[AS1((op\))]0D(size:2)(Vn:4)(Vd:4)1001NQM1(Vm:4)	VMUL_VMULL_int_poly_A1
[AS1((op\))]0D(size:2)(Vn:4)(Vd:4)1001NQM1(Vm:4)	{lor(lor(eq(size,3),land(op,size)),band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VMUL_VMULL_int_poly_A1
# A2 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)11(op)0N0M0(Vm:4)	{ne(size,3)}	VMUL_VMULL_int_poly_A2
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)11(op)0N0M0(Vm:4)	{ne(size,3)} {lor(land(op,lor(U,size)),band(Vd,1))}	UNDEFINED in VMUL_VMULL_int_poly_A2

# A8.8.351 VMUL (floating-point)
# A1 ASIMD
[AS1(1)]0D0(sz)(Vn:4)(Vd:4)1101NQM1(Vm:4)	VMUL_fp_A1
[AS1(1)]0D0(sz)(Vn:4)(Vd:4)1101NQM1(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),sz)}	UNDEFINED in VMUL_fp_A1

# A8.8.352 VMUL, VMULL (by scalar)
# A1 ASIMD
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)100FN1M0(Vm:4)	{ne(size,3)}	VMUL_VMULL_scalar_A1
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)100FN1M0(Vm:4)	{ne(size,3)} {lor(lor(lnot(size),eq(F,size)),band(Q,bor(Vd,Vn)))}	UNDEFINED in VMUL_VMULL_scalar_A1
# A2 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)1010N1M0(Vm:4)	{ne(size,3)}	VMUL_VMULL_scalar_A2
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)1010N1M0(Vm:4)	{ne(size,3)} {lor(lnot(size),band(Vd,1))}	UNDEFINED in VMUL_VMULL_scalar_A2

# A8.8.353 VMVN (immediate)
# A1 ASIMD
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q11(imm4:4)	{lnot(land(band(cmode,1),lt(cmode,12)))} {lt(cmode,14)}	VMVN_imm_A1
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q11(imm4:4)	{lnot(land(band(cmode,1),lt(cmode,12)))} {lt(cmode,14)} {band(Q,Vd)}	UNDEFINED in VMVN_imm_A1

# A8.8.354 VMVN (register)
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)01011QM0(Vm:4)	VMVN_reg_A1
[AS1(1)]1D11(size:2)00(Vd:4)01011QM0(Vm:4)	{lor(size,band(Q,bor(Vd,Vm)))}	UNDEFINED in VMVN_reg_A1

# A8.8.355 VNEG
# A1 ASIMD
[AS1(1)]1D11(size:2)01(Vd:4)0F111QM0(Vm:4)	VNEG_A1
[AS1(1)]1D11(size:2)01(Vd:4)0F111QM0(Vm:4)	{lor(lor(eq(size,3),land(F,ne(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VNEG_A1

# A8.8.358 VORN (register)
# A1 ASIMD
[AS1(0)]0D11(Vn:4)(Vd:4)0001NQM1(Vm:4)	VORN_reg_A1
[AS1(0)]0D11(Vn:4)(Vd:4)0001NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VORN_reg_A1

# A8.8.359 VORR (immediate)
# A1 ASIMD
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q01(imm4:4)	{band(cmode,1)} {lt(cmode,12)}	VORR_imm_A1
[AS1(i)]1D000(imm3:3)(Vd:4)(cmode:4)0Q01(imm4:4)	{band(cmode,1)} {lt(cmode,12)} {band(Q,Vd)}	UNDEFINED in VORR_imm_A1

# A8.8.360 VORR (register)
# A1 ASIMD
[AS1(0)]0D10(Vn:4)(Vd:4)0001NQM1(Vm:4)	{lor(ne(N,M),ne(Vn,Vm))}	VORR_reg_A1
[AS1(0)]0D10(Vn:4)(Vd:4)0001NQM1(Vm:4)	{lor(ne(N,M),ne(Vn,Vm))} {band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VORR_reg_A1

# A8.8.361 VPADAL
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)0110(op)QM0(Vm:4)	VPADAL_A1
[AS1(1)]1D11(size:2)00(Vd:4)0110(op)QM0(Vm:4)	{lor(eq(size,3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VPADAL_A1

# A8.8.362 VPADD (integer)
# A1 ASIMD
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1011NQM1(Vm:4)	VPADD_int_A1
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1011NQM1(Vm:4)	{lor(eq(size,3),Q)}	UNDEFINED in VPADD_int_A1

# A8.8.363 VPADD (floating-point)
# A1 ASIMD
[AS1(1)]0D0(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	VPADD_fp_A1
[AS1(1)]0D0(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	{lor(sz,Q)}	UNDEFINED in VPADD_fp_A1

# A8.8.364 VPADDL
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)0010(op)QM0(Vm:4)	VPADDL_A1
[AS1(1)]1D11(size:2)00(Vd:4)0010(op)QM0(Vm:4)	{lor(eq(size,3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VPADDL_A1

# A8.8.365 VPMAX, VPMIN (integer)
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)1010NQM(op)(Vm:4)	VPMAX_VPMIN_int_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)1010NQM(op)(Vm:4)	{lor(eq(size,3),Q)}	UNDEFINED in VPMAX_VPMIN_int_A1

# A8.8.366 VPMAX, VPMIN (floating-point)
# A1 ASIMD
[AS1(1)]0D(op)(sz)(Vn:4)(Vd:4)1111NQM0(Vm:4)	VPMAX_VPMIN_fp_A1
[AS1(1)]0D(op)(sz)(Vn:4)(Vd:4)1111NQM0(Vm:4)	{lor(sz,Q)}	UNDEFINED in VPMAX_VPMIN_fp_A1

# A8.8.369 VQABS
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)01110QM0(Vm:4)	VQABS_A1
[AS1(1)]1D11(size:2)00(Vd:4)01110QM0(Vm:4)	{lor(eq(size,3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VQABS_A1

# A8.8.370 VQADD
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0000NQM1(Vm:4)	VQADD_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0000NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VQADD_A1

# A8.8.371 VQDMLAL, VQDMLSL
# A1 ASIMD
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)10(op)1N0M0(Vm:4)	{ne(size,3)}	VQDMLAL_VQDMLSL_A1
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)10(op)1N0M0(Vm:4)	{ne(size,3)} {lor(lnot(size),band(Vd,1))}	UNDEFINED in VQDMLAL_VQDMLSL_A1
# A2 ASIMD
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)0(op)11N1M0(Vm:4)	{ne(size,3)}	VQDMLAL_VQDMLSL_A2
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)0(op)11N1M0(Vm:4)	{ne(size,3)} {lor(lnot(size),band(Vd,1))}	UNDEFINED in VQDMLAL_VQDMLSL_A2

# A8.8.372 VQDMULH
# A1 ASIMD
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1011NQM0(Vm:4)	VQDMULH_A1
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1011NQM0(Vm:4)	{lor(lor(band(Q,bor(bor(Vd,Vn),Vm)),lnot(size)),eq(size,3))}	UNDEFINED in VQDMULH_A1
# A2 ASIMD
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)1100N1M0(Vm:4)	{ne(size,3)}	VQDMULH_A2
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)1100N1M0(Vm:4)	{ne(size,3)} {lor(band(Q,bor(Vd,Vn)),lnot(size))}	UNDEFINED in VQDMULH_A2

# A8.8.373 VQDMULL
# A1 ASIMD
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)1101N0M0(Vm:4)	{ne(size,3)}	VQDMULL_A1
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)1101N0M0(Vm:4)	{ne(size,3)} {lor(lnot(size),band(Vd,1))}	UNDEFINED in VQDMULL_A1
# A2 ASIMD
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)1011N1M0(Vm:4)	{ne(size,3)}	VQDMULL_A2
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)1011N1M0(Vm:4)	{ne(size,3)} {lor(lnot(size),band(Vd,1))}	UNDEFINED in VQDMULL_A2

# A8.8.374 VQMOVN, VQMOVUN
# A1 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)0010(op:2)M0(Vm:4)	{op}	VQMOVN_VQMOVUN_A1
[AS1(1)]1D11(size:2)10(Vd:4)0010(op:2)M0(Vm:4)	{op} {lor(eq(size,3),band(Vm,1))}	UNDEFINED in VQMOVN_VQMOVUN_A1

# A8.8.375 VQNEG
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)01111QM0(Vm:4)	VQNEG_A1
[AS1(1)]1D11(size:2)00(Vd:4)01111QM0(Vm:4)	{lor(eq(size,3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VQNEG_A1

# A8.8.376 VQRDMULH
# A1 ASIMD
[AS1(1)]0D(size:2)(Vn:4)(Vd:4)1011NQM0(Vm:4)	VQRDMULH_A1
[AS1(1)]0D(size:2)(Vn:4)(Vd:4)1011NQM0(Vm:4)	{lor(lor(band(Q,bor(bor(Vd,Vn),Vm)),lnot(size)),eq(size,3))}	UNDEFINED in VQRDMULH_A1
# A2 ASIMD
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)1101N1M0(Vm:4)	{ne(size,3)}	VQRDMULH_A2
[AS1(Q)]1D(size:2)(Vn:4)(Vd:4)1101N1M0(Vm:4)	{ne(size,3)} {lor(band(Q,bor(Vd,Vn)),lnot(size))}	UNDEFINED in VQRDMULH_A2

# A8.8.377 VQRSHL
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0101NQM1(Vm:4)	VQRSHL_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0101NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vm),Vn))}	UNDEFINED in VQRSHL_A1

# A8.8.378 VQRSHRN, VQRSHRUN
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)100(op)01M1(Vm:4)	{gt(imm6,7)} {lor(U,op)}	VQRSHRN_VQRSHRUN_A1
[AS1(U)]1D(imm6:6)(Vd:4)100(op)01M1(Vm:4)	{gt(imm6,7)} {lor(U,op)} {band(Vm,1)}	UNDEFINED in VQRSHRN_VQRSHRUN_A1

# A8.8.379 VQSHL (register)
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0100NQM1(Vm:4)	VQSHL_reg_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0100NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vm),Vn))}	UNDEFINED in VQSHL_reg_A1

# A8.8.380 VQSHL, VQSHLU (immediate)
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)011(op)LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VQSHL_VQSHLU_imm_A1
[AS1(U)]1D(imm6:6)(Vd:4)011(op)LQM1(Vm:4)	{lor(L,gt(imm6,7))} {lor(lnot(lor(U,op)),band(Q,bor(Vd,Vm)))}	UNDEFINED in VQSHL_VQSHLU_imm_A1

# A8.8.381 VQSHRN, VQSHRUN
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)100(op)00M1(Vm:4)	{gt(imm6,7)} {lor(U,op)}	VQSHRN_VQSHRUN_A1
[AS1(U)]1D(imm6:6)(Vd:4)100(op)00M1(Vm:4)	{gt(imm6,7)} {lor(U,op)} {band(Vm,1)}	UNDEFINED in VQSHRN_VQSHRUN_A1

# A8.8.382 VQSUB
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0010NQM1(Vm:4)	VQSUB_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0010NQM1(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VQSUB_A1

# A8.8.383 VRADDHN
# A1 ASIMD
[AS1(1)]1D(size:2)(Vn:4)(Vd:4)0100N0M0(Vm:4)	{ne(size,3)}	VRADDHN_A1
[AS1(1)]1D(size:2)(Vn:4)(Vd:4)0100N0M0(Vm:4)	{ne(size,3)} {band(bor(Vn,Vm),1)}	UNDEFINED in VRADDHN_A1

# A8.8.384 VRECPE
# A1 ASIMD
[AS1(1)]1D11(size:2)11(Vd:4)010F0QM0(Vm:4)	VRECPE_A1
[AS1(1)]1D11(size:2)11(Vd:4)010F0QM0(Vm:4)	{lor(band(Q,bor(Vd,Vm)),ne(size,2))}	UNDEFINED in VRECPE_A1

# A8.8.385 VRECPS
# A1 ASIMD
[AS1(0)]0D0(sz)(Vn:4)(Vd:4)1111NQM1(Vm:4)	VRECPS_A1
[AS1(0)]0D0(sz)(Vn:4)(Vd:4)1111NQM1(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),sz)}	UNDEFINED in VRECPS_A1

# A8.8.386 VREV16, VREV32, VREV64
# A1 ASIMD
[AS1(1)]1D11(size:2)00(Vd:4)000(op:2)QM0(Vm:4)	VREV16_VREV32_VREV64_A1
[AS1(1)]1D11(size:2)00(Vd:4)000(op:2)QM0(Vm:4)	{lor(ge(add(op,size),3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VREV16_VREV32_VREV64_A1

# A8.8.387 VRHADD
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0001NQM0(Vm:4)	VRHADD_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0001NQM0(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),eq(size,3))}	UNDEFINED in VRHADD_A1

# A8.8.388 VRSHL
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0101NQM0(Vm:4)	VRSHL_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0101NQM0(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VRSHL_A1

# A8.8.389 VRSHR
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)0010LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VRSHR_A1
[AS1(U)]1D(imm6:6)(Vd:4)0010LQM1(Vm:4)	{lor(L,gt(imm6,7))} {band(Q,bor(Vd,Vm))}	UNDEFINED in VRSHR_A1

# A8.8.390 VRSHRN
# A1 ASIMD
[AS1(0)]1D(imm6:6)(Vd:4)100001M1(Vm:4)	{gt(imm6,7)}	VRSHRN_A1
[AS1(0)]1D(imm6:6)(Vd:4)100001M1(Vm:4)	{gt(imm6,7)} {band(Vm,1)}	UNDEFINED in VRSHRN_A1

# A8.8.391 VRSQRTE
# A1 ASIMD
[AS1(1)]1D11(size:2)11(Vd:4)010F1QM0(Vm:4)	VRSQRTE_A1
[AS1(1)]1D11(size:2)11(Vd:4)010F1QM0(Vm:4)	{lor(band(Q,bor(Vd,Vm)),ne(size,2))}	UNDEFINED in VRSQRTE_A1

# A8.8.392 VRSQRTS
# A1 ASIMD
[AS1(0)]0D1(sz)(Vn:4)(Vd:4)1111NQM1(Vm:4)	VRSQRTS_A1
[AS1(0)]0D1(sz)(Vn:4)(Vd:4)1111NQM1(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),sz)}	UNDEFINED in VRSQRTS_A1

# A8.8.393 VRSRA
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)0011LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VRSRA_A1
[AS1(U)]1D(imm6:6)(Vd:4)0011LQM1(Vm:4)	{lor(L,gt(imm6,7))} {band(Q,bor(Vd,Vm))}	UNDEFINED in VRSRA_A1

# A8.8.394 VRSUBHN
# A1 ASIMD
[AS1(1)]1D(size:2)(Vn:4)(Vd:4)0110N0M0(Vm:4)	{ne(size,3)}	VRSUBHN_A1
[AS1(1)]1D(size:2)(Vn:4)(Vd:4)0110N0M0(Vm:4)	{ne(size,3)} {band(bor(Vn,Vm),1)}	UNDEFINED in VRSUBHN_A1

# A8.8.395 VSHL (immediate)
# A1 ASIMD
[AS1(0)]1D(imm6:6)(Vd:4)0101LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VSHL_imm_A1
[AS1(0)]1D(imm6:6)(Vd:4)0101LQM1(Vm:4)	{lor(L,gt(imm6,7))} {band(Q,bor(Vd,Vm))}	UNDEFINED in VSHL_imm_A1

# A8.8.396 VSHL (register)
# A1 ASIMD
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0100NQM0(Vm:4)	VSHL_reg_A1
[AS1(U)]0D(size:2)(Vn:4)(Vd:4)0100NQM0(Vm:4)	{band(Q,bor(bor(Vd,Vm),Vn))}	UNDEFINED in VSHL_reg_A1

# A8.8.397 VSHLL
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)101000M1(Vm:4)	{gt(imm6,7)} {lnot(ispow2(imm6))}	VSHLL_A1
[AS1(U)]1D(imm6:6)(Vd:4)101000M1(Vm:4)	{gt(imm6,7)} {lnot(ispow2(imm6))} {band(Vd,1)}	UNDEFINED in VSHLL_A1
# T2 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)001100M0(Vm:4)	VSHLL_A2
[AS1(1)]1D11(size:2)10(Vd:4)001100M0(Vm:4)	{lor(eq(size,3),band(Vd,1))}	UNDEFINED in VSHLL_A2

# A8.8.398 VSHR
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)0000LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VSHR_A1
[AS1(U)]1D(imm6:6)(Vd:4)0000LQM1(Vm:4)	{lor(L,gt(imm6,7))} {band(Q,bor(Vd,Vm))}	UNDEFINED in VSHR_A1

# A8.8.399 VSHRN
# A1 ASIMD
[AS1(0)]1D(imm6:6)(Vd:4)100000M1(Vm:4)	{gt(imm6,7)}	VSHRN_A1
[AS1(0)]1D(imm6:6)(Vd:4)100000M1(Vm:4)	{gt(imm6,7)} {band(Vm,1)}	UNDEFINED in VSHRN_A1

# A8.8.400 VSLI
# A1 ASIMD
[AS1(1)]1D(imm6:6)(Vd:4)0101LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VSLI_A1
[AS1(1)]1D(imm6:6)(Vd:4)0101LQM1(Vm:4)	{lor(L,gt(imm6,7))} {band(Q,bor(Vd,Vm))}	UNDEFINED in VSLI_A1

# A8.8.402 VSRA
# A1 ASIMD
[AS1(U)]1D(imm6:6)(Vd:4)0001LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VSRA_A1
[AS1(U)]1D(imm6:6)(Vd:4)0001LQM1(Vm:4)	{lor(L,gt(imm6,7))} {band(Q,bor(Vd,Vm))}	UNDEFINED in VSRA_A1

# A8.8.403 VSRI
# A1 ASIMD
[AS1(1)]1D(imm6:6)(Vd:4)0100LQM1(Vm:4)	{lor(L,gt(imm6,7))}	VSRI_A1
[AS1(1)]1D(imm6:6)(Vd:4)0100LQM1(Vm:4)	{lor(L,gt(imm6,7))} {band(Q,bor(Vd,Vm))}	UNDEFINED in VSRI_A1

# A8.8.404 VST1 (multiple single elements)
# A1 ASIMD
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lor(lor(eq(type,7),eq(type,10)),lor(eq(type,6),eq(type,2)))}	VST1_mult_A1
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lor(land(eq(band(type,14),6),band(align,2)),land(eq(type,10),eq(align,3)))}	UNDEFINED in VST1_mult_A1

# A8.8.405 VST1 (single element from one lane)
# A1 ASIMD
[AS2]1D00(Rn:4)(Vd:4)(size:2)00(index_align:4)(Rm:4)	VST1_onelane_A1
[AS2]1D00(Rn:4)(Vd:4)(size:2)00(index_align:4)(Rm:4)	{lor(eq(size,3),lor(band(index_align,lsl(1,size)),land(eq(size,2),leor(band(index_align,1),band(index_align,2)))))}	UNDEFINED in VST1_onelane_A1

# A8.8.406 VST2 (multiple 2-element structures)
# A1 ASIMD
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lor(eq(band(type,14),8),eq(type,3))}	VST2_mult_A1
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lor(eq(band(type,14),8),eq(type,3))} {lor(eq(size,3),land(eq(band(type,14),8),eq(align,3)))}	UNDEFINED in VST2_mult_A1

# A8.8.407 VST2 (single 2-element structure from one lane)
# A1 ASIMD
[AS2]1D00(Rn:4)(Vd:4)(size:2)01(index_align:4)(Rm:4)	VST2_onelane_A1
[AS2]1D00(Rn:4)(Vd:4)(size:2)01(index_align:4)(Rm:4)	{lor(eq(size,3),land(eq(size,2),band(index_align,2)))}	UNDEFINED in VST2_onelane_A1

# A8.8.408 VST3 (multiple 3-element structures)
# A1 ASIMD
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(band(type,14),4)}	VST3_mult_A1
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{eq(band(type,14),4)} {lor(eq(size,3),band(align,2))}	UNDEFINED in VST3_mult_A1

# A8.8.409 VST3 (single 3-element structure from one lane)
# A1 ASIMD
[AS2]1D00(Rn:4)(Vd:4)(size:2)10(index_align:4)(Rm:4)	VST3_onelane_A1
[AS2]1D00(Rn:4)(Vd:4)(size:2)10(index_align:4)(Rm:4)	{lor(eq(size,3),lor(band(index_align,1),land(eq(size,2),band(index_align,3))))}	UNDEFINED in VST3_onelane_A1

# A8.8.410 VST4 (multiple 4-element structures)
# A1 ASIMD
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lt(type,2)}	VST4_mult_A1
[AS2]0D00(Rn:4)(Vd:4)(type:4)(size:2)(align:2)(Rm:4)	{lt(type,2)} {eq(size,3)}	UNDEFINED in VST4_mult_A1

# A8.8.411 VST4 (single 4-element structure from one lane)
# A1 ASIMD
[AS2]1D00(Rn:4)(Vd:4)(size:2)11(index_align:4)(Rm:4)	VST4_onelane_A1
[AS2]1D00(Rn:4)(Vd:4)(size:2)11(index_align:4)(Rm:4)	{lor(eq(size,3),land(eq(size,2),eq(band(index_align,3),3)))}	UNDEFINED in VST4_onelane_A1

# A8.8.414 VSUB (integer)
# A1 ASIMD
[AS1(1)]0D(size:2)(Vn:4)(Vd:4)1000NQM0(Vm:4)	VSUB_int_A1
[AS1(1)]0D(size:2)(Vn:4)(Vd:4)1000NQM0(Vm:4)	{band(Q,bor(bor(Vd,Vn),Vm))}	UNDEFINED in VSUB_int_A1

# A8.8.415 VSUB (floating-point)
# A1 ASIMD
[AS1(0)]0D1(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	VSUB_fp_A1
[AS1(0)]0D1(sz)(Vn:4)(Vd:4)1101NQM0(Vm:4)	{lor(band(Q,bor(bor(Vd,Vn),Vm)),sz)}	UNDEFINED in VSUB_fp_A1

# A8.8.416 VSUBHN
# A1 ASIMD
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)0110N0M0(Vm:4)	{ne(size,3)}	VSUBHN_A1
[AS1(0)]1D(size:2)(Vn:4)(Vd:4)0110N0M0(Vm:4)	{ne(size,3)} {band(bor(Vn,Vm),1)}	UNDEFINED in VSUBHN_A1

# A8.8.417 VSUBL, VSUBW
# A1 ASIMD
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)001(op)N0M0(Vm:4)	{ne(size,3)}	VSUBL_VSUBW_A1
[AS1(U)]1D(size:2)(Vn:4)(Vd:4)001(op)N0M0(Vm:4)	{ne(size,3)} {band(bor(Vd,band(op,Vn)),1)}	UNDEFINED in VSUBL_VSUBW_A1

# A8.8.418 VSWP
# A1 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)00000QM0(Vm:4)	VSWP_A1
[AS1(1)]1D11(size:2)10(Vd:4)00000QM0(Vm:4)	{lor(size,band(Q,bor(Vd,Vm)))}	UNDEFINED in VSWP_A1

# A8.8.419 VTBL, VTBX
# A1 ASIMD
[AS1(1)]1D11(Vn:4)(Vd:4)10(len:2)N(op)M0(Vm:4)	VTBL_VTBX_A1

# A8.8.420 VTRN
# A1 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)00001QM0(Vm:4)	VTRN_A1
[AS1(1)]1D11(size:2)10(Vd:4)00001QM0(Vm:4)	{lor(eq(size,3),band(Q,bor(Vd,Vm)))}	UNDEFINED in VTRN_A1

# A8.8.421 VTST
# A1 ASIMD
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1000NQM1(Vm:4)	VTST_A1
[AS1(0)]0D(size:2)(Vn:4)(Vd:4)1000NQM1(Vm:4)	{lor(eq(size,3),band(Q,bor(bor(Vd,Vn),Vm)))}	UNDEFINED in VTST_A1

# A8.8.422 VUZP
# A1 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)00010QM0(Vm:4)	VUZP_A1
[AS1(1)]1D11(size:2)10(Vd:4)00010QM0(Vm:4)	{lor(lor(eq(size,3),land(lnot(Q),eq(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VUZP_A1

# A8.8.423 VZIP
# A1 ASIMD
[AS1(1)]1D11(size:2)10(Vd:4)00011QM0(Vm:4)	VZIP_A1
[AS1(1)]1D11(size:2)10(Vd:4)00011QM0(Vm:4)	{lor(lor(eq(size,3),land(lnot(Q),eq(size,2))),band(Q,bor(Vd,Vm)))}	UNDEFINED in VZIP_A1
